package class_4;

public class Coding_UniqueSubstringsWraparoundString {
	public static int findSubstringInWraproundString(String str) {
		int n = str.length();
		int[] s = new int[n];
		for(int i=0;i<n;i++) {
			s[i] = str.charAt(i) - 'a';//将str的每个字符依次转成对应的数组。
		}
		int[] dp = new int[26];//dp表统计以"*"字符结尾的长度.
		dp[s[0]] = 1;
		for(int i=1, cur,pre, len = 1;i < n;i++) {
			cur = s[i];//当前字符
			pre = s[i-1];//上一个字符
			//pre cur：相邻字符... z->a , a->b->c->...->z->a->...
			if((pre==25 && cur==0) || pre+1==cur) {
				len++;
			}
			else {
				len = 1;//重置len的大小
			}
			dp[cur] = Math.max(dp[cur], len);
		}
		int ans = 0;
		for(int x: dp) {
			ans += x;
		}
		return ans;
	}
}
